package com.proba.annotations.hibernate;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import com.proba.annotations.ProizvodenPogonDAO;
import com.proba.annotations.pojo.ProizvodenPogon;

public class ProizvodenPogonHibernateDAO extends
		AbstractHibernateDAO<ProizvodenPogon, Long> implements
		ProizvodenPogonDAO {

	public List<ProizvodenPogon> findByProizvodenPogon(String proizvodenPogon) {
		return findByCriteria(Restrictions.eq("proizvodenPogon", proizvodenPogon));
	}
	
	public List<ProizvodenPogon> findByTipProizvodenPogon(Long tipProizvodenPogon) {
		return findByCriteria(Restrictions.eq("tipProizvodenPogon.tipProizvodenPogon", tipProizvodenPogon));
	}

	@Override
	@SuppressWarnings("unchecked")
	public List<ProizvodenPogon> findByFilterParams(int startIndex,
			int pageSize, Long id, String proizvodenPogon,
			String tipProizvodenPogon) {
		Criteria crit = getCriteria(startIndex, pageSize);
		if (id != null) {
			crit.add(Restrictions.eq("id", id));
			return crit.list();
		}
		if (proizvodenPogon != null && !proizvodenPogon.isEmpty()) {
			crit.add(like("proizvodenPogon", proizvodenPogon));
		}
		if (tipProizvodenPogon != null && !tipProizvodenPogon.isEmpty()) {
			crit.createCriteria("tipProizvodenPogon").add(like("tipProizvodenPogon", tipProizvodenPogon));
		}
		return crit.list();
	}
	

}
